const common=require("../../utils/util.js")
Page({

  /**
   * 页面的初始数据
   */
  data: {
    validateUser:false,
    validatePass:false,
    addUserbasicMessageURL:'http://localhost:8081/keepfit/addBasicMessage',
    validateRepeatPass:false,
    // 下面这3个用于对表单进行清空
    userValue:"",  
    passValue:"",
    username:'', // 用户名
    repeatPassValue:"",
    pass:"",  //存储输入后的密码
    repeatPass:"",  //存储输入后的重复密码
    notice_content:"欢迎注册!",
    register_notice:"已经注册?",
    register_button:"立即登录->"
  },
  // 处理注册请求
  handleRegister(e){
      var that=this
      console.log(e)
      var user=e.detail.value.name
      var pass=e.detail.value.pass
      // 先对用户名格式进行判断
      // 如果用户名和密码的格式都正确
      if(that.data.validatePass && that.data.validateUser && that.data.validateRepeatPass){
        // 向服务器发起请求添加用户信息
        that.judgeMessage(user,pass)       
      }else{
        wx.showToast({
          title: '输入格式不正确',
          icon: 'error',
          duration: 2000
        })
       
      }
      // 对获取到的用户名和密码进行验证
      that.setData({
        userValue:"",
        passValue:"",    
        repeatPassValue:""
      })      
  },

  // 正则表达式校验函数
  RegexpValidate(data){
    var isLegal=false  // 数据格式进行校验
    var islegalLength=false //对长度进行判断
    // 长度格式：数字、字母、下划线、#、$这些字符
    var patt = /(\w|[#$])/i
    // 空白字符
    var minlength=3 //用户名和密码的最小长度
    var maxlength=12 //用户名和密码的最大长度    

    // 对长度进行判断
    if(data.length>=minlength && data.length<=maxlength){
      islegalLength=true      
    }else{
      islegalLength=false
    }
    if(!islegalLength){
      wx.showToast({
        title: '长度为3-12',
        icon: 'error',
        duration: 2000
      })
    }
     // 对格式进行判断
     if(islegalLength){
      for(var i=0;i<data.length;i++){
        // 对每个字符进行校验
        if(patt.test(data[i]) && data[i]!=" "){
            isLegal=true            
        }else {
          isLegal=false
          break
        }
      }
      if(!isLegal){
        wx.showToast({
          title: '格式不正确',
          icon: 'error',
          duration: 2000
        })
       }
     }
    
    return isLegal
  },

  // 对用户名格式进行校验
  validateUser(e){
    var that=this
    var validateResult=false
    var user
    console.log("用户名:")
    console.log(e)
    user=e.detail.value
    validateResult=that.RegexpValidate(user)
    that.data.validateUser=validateResult
  },

  // 对密码进行格式校验
  validatePass(e){
    var that=this
    var validateResult=false
    var pass=e.detail.value
    // 将pass存入data中
    that.data.pass=pass
    validateResult=that.RegexpValidate(pass)
    that.data.validatePass=validateResult
  },
  // 对重复输入的密码进行校验
  validateRepeatPass(e){
    var that=this
    var validateResult=false
    var repeatPass=e.detail.value
    that.data.repeatPass=repeatPass
    if(that.data.pass == that.data.repeatPass){
      validateResult=true
    }else{
      validateResult=false
      wx.showToast({
        title: '2次密码不一致',
        icon: 'error',
        duration: 2000
      })
    }
    that.data.validateRepeatPass=validateResult
  },
  // 判断用户名和密码输入是否正确
  judgeMessage(user,pass){
    var parm={}
    parm.username=user
    var that=this
    var requestURL="http://localhost:8081/keepfit/addUser"
     // 向服务器发起请求 请求地址：http://localhost:8081/keepfit/findUserByName
     wx.request({
       url: requestURL, //仅为示例，并非真实的接口地址
       data: {
        username:user,
        password:pass
       },
       header: {
         'content-type': 'application/json' // 默认值
       },
       success (res) {
         console.log(res.data)         
         // 判断登录的密码是否正确
           // 返回为null
           if(res.data.status=="success"){
             console.log("注册成功！")                        
              // 将页面重定向到登录界面
            wx.navigateTo({
              url: "/pages/login/index"         
            })
            wx.showToast({
              title: '注册成功！',
            })
            // 添加用户基本信息
            common.addUserBasicMessage(parm,that.data.addUserbasicMessageURL)
            .then(res=>{
              
            })

           }else{
             console.log("注册失败！")
             wx.showToast({
               title: '注册失败!',
             })                
         }
       },
       fail(error){
         wx.showToast({
           title: '服务器出错',
           icon: 'error',
           duration: 2000
         })
       }
     })
 }
  
})